//TODO 可选参数(函数在声明的时候,内部的参数使用了?进行修饰,那么就表示该参数可以传入也可以不传入)和默认参数(函数在声明的时候,内部的参数有自己的默认值,此时这个参数可以叫默认参数)
(()=>{
//定义一个函数
    //需求:传入姓+名得到姓名---如果不传入任何内容,那就返回默认的姓---如果只传入姓,那么就返回姓---如果传入姓和名,那就返回姓名
function getFullName(firstName:string='东方',lastName?:string){
if(lastName){
return firstName+'_'+lastName
}else{
    return firstName
}
}

    //函数调用
    //什么也不传
    console.log(getFullName())
    //只传姓氏
    console.log(getFullName('诸葛'))
    //传了姓+名
    console.log(getFullName('诸葛','孔明'))
})()